<!DOCTYPE html>
<html>
  <!-- Html Head Tag-->
  <head>
  <meta charset="UTF-8">
  <meta http-equiv="X-UA-Compatible" content="IE=edge">
  <meta name="viewport" content="width=device-width, initial-scale=1">
  <meta name="description" content="">
  <meta name="author" content="徐健">
  <!-- Open Graph Data -->
  <meta property="og:title" content="Http请求"/>
  <meta property="og:description" content="" />
  <meta property="og:site_name" content="自由之道"/>
  <meta property="og:type" content="article" />
  <meta property="og:image" content="https://xujianhunter.gitee.io/blog"/>
  
    <link rel="alternate" href="/atom.xml" title="自由之道" type="application/atom+xml">
  
  
    <link rel="icon" href="/favicon.png">
  

  <!-- Site Title -->
  <title>自由之道</title>

  <!-- Bootstrap CSS -->
  <link rel="stylesheet" href="/blog/css/bootstrap.min.css">
  <!-- Custom CSS -->
  
  <link rel="stylesheet" href="/blog/css/style.light.css">

  <!-- Google Analytics -->
  

</head>

  <body>
    <!-- Page Header -->


<header class="site-header header-background" style="background-image: url(/blog//img/default-banner-dark.jpg)">
  <div class="container">
    <div class="row">
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
        <div class="page-title with-background-image">
          <p class="title">Http请求</p>
          <p class="subtitle"></p>
        </div>
        <div class="site-menu with-background-image">
          <ul>
            
              <li>
                <a href="/blog/">
                  
                  首页
                  
                </a>
              </li>
            
              <li>
                <a href="/blog/archives">
                  
                  记录
                  
                </a>
              </li>
            
              <li>
                <a href="https://github.com/xujianjs">
                  
                  Github
                  
                </a>
              </li>
            
              <li>
                <a href="https://gitee.com/xujianHunter/blog">
                  
                  码云
                  
                </a>
              </li>
            
          </ul>
        </div>
      </div>
    </div>
  </div>
</header>

<article>
  <div class="container typo">
    <div class="row">
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
        <div class="post-info text-muted">
          
            <!-- Author -->
            <span class="author info">By 徐健</span>
          
          <!-- Date -->
          <span class="date-time info">On
            <span class="date">2018-06-19</span>
            <span class="time">22:46:46</span>
          </span>
          
        </div>
        <!-- Tags -->
        
        <!-- Post Main Content -->
        <div class="post-content">
          <h1 id="分析http请求的request对象和session机制"><a href="#分析http请求的request对象和session机制" class="headerlink" title="分析http请求的request对象和session机制"></a>分析http请求的request对象和session机制</h1><h3 id="每发一次请求-就有一个对应的封装对象request"><a href="#每发一次请求-就有一个对应的封装对象request" class="headerlink" title="每发一次请求,就有一个对应的封装对象request"></a>每发一次请求,就有一个对应的封装对象request</h3><blockquote><p><a href="https://www.baidu.com" target="_blank" rel="noopener">访问百度</a></p>
</blockquote>
<h3 id="因为http请求是无状态的-request的接收者-也就是服务器-是不知道是谁发出的"><a href="#因为http请求是无状态的-request的接收者-也就是服务器-是不知道是谁发出的" class="headerlink" title="因为http请求是无状态的,request的接收者(也就是服务器)是不知道是谁发出的"></a>因为http请求是无状态的,request的接收者(也就是服务器)是不知道是谁发出的</h3><blockquote><p>request这是由API封装的对象,WEB入门少不了它</p>
</blockquote>
<h3 id="那么登录是怎么解决一次登录操作-能够访问到其他资源的呢-也就是服务器晓得是同一个用户发出的请求-这里利用了session保持的一个机制"><a href="#那么登录是怎么解决一次登录操作-能够访问到其他资源的呢-也就是服务器晓得是同一个用户发出的请求-这里利用了session保持的一个机制" class="headerlink" title="那么登录是怎么解决一次登录操作,能够访问到其他资源的呢(也就是服务器晓得是同一个用户发出的请求),这里利用了session保持的一个机制"></a>那么登录是怎么解决一次登录操作,能够访问到其他资源的呢(也就是服务器晓得是同一个用户发出的请求),这里利用了session保持的一个机制</h3><blockquote><p>登录就相当于把一个无状态的东西弄成了有状态识别了,这个识别就好比身份证,可以用来确定是不是同一个人账号登录的,扩展API提供的session对象,<br>可以放入我们登录的信息,但是最好对我们的账号密码加密,否则很容易泄密</p>
</blockquote>
<h3 id="什么是session-我不喜欢翻译成”会话”-有的时候英文更能解决问题-就叫session-这玩意儿也是对象-和人一样-有生老病死"><a href="#什么是session-我不喜欢翻译成”会话”-有的时候英文更能解决问题-就叫session-这玩意儿也是对象-和人一样-有生老病死" class="headerlink" title="什么是session,我不喜欢翻译成”会话”(有的时候英文更能解决问题),就叫session,这玩意儿也是对象,和人一样,有生老病死"></a>什么是session,我不喜欢翻译成”会话”(有的时候英文更能解决问题),就叫session,这玩意儿也是对象,和人一样,有生老病死</h3><blockquote><ol>
<li>session就是设计用来搞定无状态协议的(个人理解,大神轻喷哈),这玩意在明确调用的时候生成,request.getSession()的时候,就可以通过浏览器的调试模式发现在响应头里出现一项Set-Cookie:JSESSIONID=xxxx;</li>
<li>你可以设置session的岁数,通过调用自身的方法setMaxInactiveInterval(),参数可以用来指定最大可以活到多少岁,单位是秒哦</li>
<li>当它阳寿未尽时,你会发现用浏览器再次请求,会在请求头里的Cookie里多了一项JSESSIONID=xxxx;然后响应头里的那段属性没有了,那这是为什么?<br>看源码会发现,是因为session这玩意儿属于服务器生成的资源。假如每次请求都生成一个,有没有人去管理的话。哼,这个服务器怕是要改名叫垃圾堆咯,还是只堆放同一类垃圾~</li>
</ol>
</blockquote>
<h3 id="session怎样管理"><a href="#session怎样管理" class="headerlink" title="session怎样管理?"></a>session怎样管理?</h3><blockquote><ol>
<li>自己来管理,在服务器启动前配置它,让它按照我们自己的意愿来管理。具体做法就是配置一个监听,每产生一个session,找一个罐子[服务器的内存]装起来,设定一套规则,当出现规则不允许的情况,把罐子清空,但是别摔罐子啊哇!</li>
<li>另外一种方式：别人造了个这个罐子,而且比你的罐子更实用，我们拿过来用就是了。这就是别人的API比如SHIRO管理我们的session</li>
</ol>
</blockquote>

        </div>
      </div>
    </div>
  </div>
</article>



    <!-- Footer -->
<footer>
  <div class="container">
    <div class="row">
      <div class="col-lg-8 col-lg-offset-2 col-md-10 col-md-offset-1">
        <p class="copyright text-muted">
          Theme By <a target="_blank" href="https://github.com/levblanc">Levblanc.</a>
          Inspired By <a target="_blank" href="https://github.com/klugjo/hexo-theme-clean-blog">Clean Blog.</a>
        <p class="copyright text-muted">
          Powered By <a target="_blank" href="https://hexo.io/">Hexo.</a>
        </p>
      </div>
    </div>
  </div>
</footer>


    <!-- After Footer Scripts -->
<script src="/blog/js/highlight.pack.js"></script>
<script>
  document.addEventListener("DOMContentLoaded", function(event) {
    var codeBlocks = Array.prototype.slice.call(document.getElementsByTagName('pre'))
    codeBlocks.forEach(function(block, index) {
      hljs.highlightBlock(block);
    });
  });
</script>

  </body>
</html>

